gusucode.com > VC++ 汽配销售管理系统(Access)源码程序 > VC++ 汽配销售管理系统(Access)源码程序/源码/DInput.cpp
//Download by http://www.NewXing.com // DInput.cpp : implementation file // #include "stdafx.h" #include "qpglxt.h" #include "DInput.h" #include "externDllHeader.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern CQpglxtApp theApp; ///////////////////////////////////////////////////////////////////////////// // CDInput dialog CDInput::CDInput(CWnd* pParent /*=NULL*/) : CDialog(CDInput::IDD, pParent) { //{{AFX_DATA_INIT(CDInput) //}}AFX_DATA_INIT } void CDInput::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDInput) DDX_Control(pDX, IDC_STASFJE, m_StaSfje); DDX_Control(pDX, IDC_STAWFJE, m_StaWfje); DDX_Control(pDX, IDC_STABLOCK, m_staBlock); DDX_Control(pDX, IDC_INPUT_EDTSTORE, m_EdtStore); DDX_Control(pDX, IDC_INPUT_STASUMNUMBER, m_StaSumNumber); DDX_Control(pDX, IDC_INPUT_STASUMMONEY, m_StaSumMoney); DDX_Control(pDX, IDC_INPUT_STASUMMONEY2, m_StaBigSumMoney); DDX_Control(pDX, IDC_INPUT_EDTPAY, m_EdtPay); DDX_Control(pDX, IDC_INPUT_EDTNOPAY, m_EdtNoPay); DDX_Control(pDX, IDC_INPUT_EDTGIVECHANGE, m_EdtGiveChange); DDX_Control(pDX, IDC_INPUT_STAID, m_StaID); DDX_Control(pDX, IDC_INPUT_STADATE, m_StaDate); DDX_Control(pDX, IDC_INPUT_BUTBOOKIN, m_ButBookIn); DDX_Control(pDX, IDC_INPUT_BUTUNDO, m_ButUndo); DDX_Control(pDX, IDC_INPUT_BUTSAVE, m_ButSave); DDX_Control(pDX, IDC_INPUT_BUTPRINT, m_ButPrint); DDX_Control(pDX, IDC_INPUT_BUTEXIT, m_ButExit); DDX_Control(pDX, IDC_INPUT_STAOP, m_StaOP); DDX_Control(pDX, IDC_INPUT_GRID, m_Grid); DDX_Control(pDX, IDC_INPUT_EDTPROVIDE, m_EdtProvide); DDX_Control(pDX, IDC_INPUT_EDTDEAR, m_EdtDear); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDInput, CDialog) //{{AFX_MSG_MAP(CDInput) ON_WM_PAINT() ON_BN_CLICKED(IDC_INPUT_BUTBOOKIN, OnInputButbookin) ON_WM_CTLCOLOR() ON_BN_CLICKED(IDC_INPUT_BUTEXIT, OnInputButexit) ON_BN_CLICKED(IDC_INPUT_BUTSAVE, OnInputButsave) ON_EN_CHANGE(IDC_INPUT_EDTPAY, OnChangeInputEdtpay) ON_BN_CLICKED(IDC_INPUT_BUTUNDO, OnInputButundo) ON_BN_CLICKED(IDC_INPUT_BUTPRINT, OnInputButprint) ON_EN_KILLFOCUS(IDC_INPUT_EDTDEAR, OnKillfocusInputEdtdear) //}}AFX_MSG_MAP ON_MESSAGE(DIY_SETFOCUS,OnCellSetFocus) ON_MESSAGE(DIY_KILLFOCUS,OnCellKillFocus) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDInput message handlers void CDInput::OnOK() { // TODO: Add extra validation here //CDialog::OnOK(); } void CDInput::OnPaint() { CPaintDC pDC(this); // device context for painting CBitmap bit; CDC memDC; CRect rect; this->GetClientRect(&rect); if(m_Caption=="进货管理") bit.LoadBitmap(IDB_INPUT); if(m_Caption=="退货返厂管理") bit.LoadBitmap(IDB_BACKF); if(m_Caption=="销售管理") bit.LoadBitmap(IDB_SELL); if(m_Caption=="销售退货管理") bit.LoadBitmap(IDB_SELLBACK); if(m_Caption=="商品调拨管理") bit.LoadBitmap(IDB_DH); memDC.CreateCompatibleDC(&pDC); memDC.SelectObject(&bit); pDC.BitBlt(22,23,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY); memDC.DeleteDC(); ::DeleteObject(&bit); } BOOL CDInput::OnInitDialog() { CDialog::OnInitDialog(); this->SetWindowText(m_Caption); m_StaDate.SetTextColor(RGB(0,0,0)); m_StaID.SetTextColor(RGB(0,0,0)); CString sSQL; if(m_Caption!="销售管理"&&m_Caption!="销售退货管理"&&m_Caption!="商品调拨管理") sSQL.Format("SELECT 编号,名称,简称 FROM 往来单位信息表 WHERE 类型=0"); else if(m_Caption=="商品调拨管理") { sSQL.Format("SELECT * FROM 仓库信息查询"); this->m_staBlock.ShowWindow(SW_SHOW); } else sSQL.Format("SELECT 编号,名称,简称 FROM 往来单位信息表 WHERE 类型=1"); rst.Open(sSQL,adCmdText); m_EdtProvide.Initialize(this->GetParent()); m_EdtProvide.StartUpAssciation=true; m_EdtProvide.SetRecordset(rst); m_EdtProvide.SetSelectField("名称"); m_StaOP.SetWindowText(OP); sSQL.Format("SELECT 编号,姓名 FROM 员工信息表"); rst.Open(sSQL,adCmdText); m_EdtDear.Initialize(this->GetParent()); m_EdtDear.SetRecordset(rst); m_EdtDear.SetSelectField("姓名"); rst.Open("仓库信息查询"); m_EdtStore.Initialize(this->GetParent()); m_EdtStore.SetRecordset(rst); m_EdtStore.SetSelectField("名称"); CString Fields[]={"配件名称","适用车型","规格","产地","计量单位","进货数量","价格","合计"}; if(m_Caption=="销售管理") { Fields[5]="销售数量"; this->m_StaSfje.SetWindowText("实收金额:"); this->m_StaWfje.SetWindowText("未收金额:"); } if(m_Caption=="退货返厂管理") { Fields[5]="退货数量"; this->m_StaSfje.SetWindowText("实返金额:"); this->m_StaWfje.SetWindowText("未返金额:"); } if(m_Caption=="销售退货管理") { Fields[5]="退货数量"; this->m_StaSfje.SetWindowText("实返金额:"); this->m_StaWfje.SetWindowText("未返金额:"); } if(m_Caption=="商品调拨管理") { Fields[5]="调拨数量"; this->m_StaSfje.EnableWindow(false); this->m_StaWfje.EnableWindow(false); } int ColWidth[]={130,60,100,130,60,60,60,78}; for(int m=0;m<8;m++) { m_Grid.InsertColumn(m,Fields[m]); m_Grid.SetColumnWidth(m,ColWidth[m]); } m_Grid.m_Edit.Initialize(this->GetParent()); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } BOOL CDInput::PreTranslateMessage(MSG* pMsg) { if(pMsg->hwnd==m_EdtDear.GetSafeHwnd() && pMsg->message==WM_KEYDOWN && pMsg->wParam==9) { this->m_Grid.InsertItem(0,""); this->m_Grid.SetRow(0); this->m_Grid.SetCol(0); this->m_Grid.BeginEdit(0,0); this->m_Grid.m_Edit.SetFocus(); pMsg->wParam=VK_CONTROL ; } if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE) { pMsg->wParam=VK_CONTROL ; this->OnInputButexit(); } return CDialog::PreTranslateMessage(pMsg); } void CDInput::OnInputButbookin() { CTime time; CString cTime,NewID; if(m_Caption=="进货管理") NewID=ado.AutoNumber("进货信息表","票号","JH",3); if(m_Caption=="退货返厂管理") NewID=ado.AutoNumber("退货返厂表","票号","RT",3); if(m_Caption=="销售管理") NewID=ado.AutoNumber("销售信息表","票号","XS",3); if(m_Caption=="销售退货管理") NewID=ado.AutoNumber("销售退货信息表","票号","XT",3); if(m_Caption=="商品调拨管理") NewID=ado.AutoNumber("调货信息表","票号","DB",3); NewID=NewID+" "; this->m_StaID.SetWindowText(NewID); time=time.GetCurrentTime(); cTime=CTimeToCString(time); cTime=cTime+" "; this->m_StaDate.SetWindowText(cTime); this->m_EdtProvide.SetFocus(); this->Enabled(false); this->Clear(); } HBRUSH CDInput::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(pWnd==&this->m_StaDate|| pWnd==&this->m_StaID) { pDC->SetBkColor(RGB(255,255,255)); pDC->SetTextColor(RGB(0,0,0)); } // TODO: Return a different brush if the default is not desired return hbr; } void CDInput::Enabled(bool bEnabled) { this->m_Grid.ReadOnly(bEnabled); this->m_ButBookIn.EnableWindow(bEnabled); if(m_Caption!="商品调拨管理") this->m_EdtPay.EnableWindow(!bEnabled); this->m_ButExit.EnableWindow(bEnabled); this->m_ButPrint.EnableWindow(bEnabled); this->m_ButSave.EnableWindow(!bEnabled); this->m_ButUndo.EnableWindow(!bEnabled); } void CDInput::OnCellSetFocus() { CString sSQL, sName,sType,sSpec,sAddr; switch(m_Grid.GetCol()) { case 0: m_Grid.m_Edit.NumberOnly(false); m_Grid.m_Edit.PopHide=false; m_Grid.m_Edit.EnterNumber=0; m_Grid.m_Edit.ClearAll(); rst.Open("SELECT DISTINCT 名称,简称 from 商品信息表",adCmdText); m_Grid.m_Edit.StartUpAssciation=true; m_Grid.m_Edit.SetRecordset(rst); m_Grid.m_Edit.SetSelectField("名称"); m_Grid.m_Edit.AutoPosition(); break; case 1: m_Grid.m_Edit.NumberOnly(false); m_Grid.m_Edit.PopHide=false; m_Grid.m_Edit.EnterNumber=0; m_Grid.m_Edit.ClearAll(); sName=m_Grid.GetItemText(m_Grid.GetRow(),0); sSQL.Format("SELECT DISTINCT 名称,适用车型 from 商品信息查询 WHERE 名称='%s'",sName); rst.Open(sSQL,adCmdText); m_Grid.m_Edit.StartUpAssciation=false; m_Grid.m_Edit.SetRecordset(rst); m_Grid.m_Edit.SetSelectField("适用车型"); m_Grid.m_Edit.AutoPosition(); break; case 2: m_Grid.m_Edit.NumberOnly(false); m_Grid.m_Edit.PopHide=false; m_Grid.m_Edit.EnterNumber=0; m_Grid.m_Edit.ClearAll(); sName=m_Grid.GetItemText(m_Grid.GetRow(),0); sType=m_Grid.GetItemText(m_Grid.GetRow(),1); sSQL.Format("SELECT DISTINCT 名称,规格 from 商品信息查询 WHERE 名称='%s' AND 适用车型='%s'",sName,sType); rst.Open(sSQL,adCmdText); m_Grid.m_Edit.StartUpAssciation=false; m_Grid.m_Edit.SetRecordset(rst); m_Grid.m_Edit.SetSelectField("规格"); m_Grid.m_Edit.AutoPosition(); break; case 3: m_Grid.m_Edit.NumberOnly(false); m_Grid.m_Edit.PopHide=false; m_Grid.m_Edit.EnterNumber=0; m_Grid.m_Edit.ClearAll(); sName=m_Grid.GetItemText(m_Grid.GetRow(),0); sType=m_Grid.GetItemText(m_Grid.GetRow(),1); sSpec=m_Grid.GetItemText(m_Grid.GetRow(),2); sSQL.Format("SELECT DISTINCT 名称,产地 from 商品信息查询 WHERE 名称='%s' AND 适用车型='%s' AND 规格='%s'",sName,sType,sSpec); rst.Open(sSQL,adCmdText); m_Grid.m_Edit.StartUpAssciation=false; m_Grid.m_Edit.SetRecordset(rst); m_Grid.m_Edit.SetSelectField("产地"); m_Grid.m_Edit.AutoPosition(); break; case 4: m_Grid.m_Edit.NumberOnly(false); m_Grid.m_Edit.PopHide=false; m_Grid.m_Edit.EnterNumber=0; m_Grid.m_Edit.ClearAll(); sName=m_Grid.GetItemText(m_Grid.GetRow(),0); sType=m_Grid.GetItemText(m_Grid.GetRow(),1); sSpec=m_Grid.GetItemText(m_Grid.GetRow(),2); sAddr=m_Grid.GetItemText(m_Grid.GetRow(),3); sSQL.Format("SELECT DISTINCT 名称,计量单位 from 商品信息查询 WHERE 名称='%s' AND 适用车型='%s' AND 规格='%s' AND 产地='%s'",sName,sType,sSpec,sAddr); rst.Open(sSQL,adCmdText); m_Grid.m_Edit.StartUpAssciation=false; m_Grid.m_Edit.SetRecordset(rst); m_Grid.m_Edit.SetSelectField("计量单位"); m_Grid.m_Edit.AutoPosition(); break; case 5: m_Grid.m_Edit.PopHide=true; m_Grid.m_Edit.NumberOnly(true); m_Grid.m_Edit.HideGrid(); break; case 6: m_Grid.m_Edit.PopHide=false; m_Grid.m_Edit.EnterNumber=0; m_Grid.m_Edit.ClearAll(); m_Grid.m_Edit.NumberOnly(true); sName=m_Grid.GetItemText(m_Grid.GetRow(),0); sType=m_Grid.GetItemText(m_Grid.GetRow(),1); sSpec=m_Grid.GetItemText(m_Grid.GetRow(),2); sAddr=m_Grid.GetItemText(m_Grid.GetRow(),3); if(m_Caption=="销售管理" || m_Caption=="销售退货管理") sSQL.Format("SELECT DISTINCT 名称,销售价格 as 价格 from 商品信息查询 WHERE 名称='%s' AND 适用车型='%s' AND 规格='%s' AND 产地='%s'",sName,sType,sSpec,sAddr); else sSQL.Format("SELECT DISTINCT 名称,进价 as 价格 from 商品信息查询 WHERE 名称='%s' AND 适用车型='%s' AND 规格='%s' AND 产地='%s'",sName,sType,sSpec,sAddr); rst.Open(sSQL,adCmdText); m_Grid.m_Edit.StartUpAssciation=false; m_Grid.m_Edit.SetRecordset(rst); m_Grid.m_Edit.SetSelectField("价格"); m_Grid.m_Edit.AutoPosition(); m_Grid.m_Edit.ShowGrid(); break; case 7: m_Grid.m_Edit.EnterNumber=0; m_Grid.m_Edit.PopHide=true; m_Grid.m_Edit.NumberOnly(true); m_Grid.m_Edit.HideGrid(); break; } } void CDInput::OnCellKillFocus() { RxRecordset rst; CString sNumber,sMoney,sTotal,sSumNumber,sSumMoney; float fTotal,fNumber,fSumNumber=0,fSumMoney=0; if(m_Grid.GetCol()==5) { sNumber=m_Grid.GetItemText(m_Grid.GetRow(),5); if(sNumber.IsEmpty()) { m_Grid.m_Edit.EnterNumber=0; m_Grid.SetCol(5); m_Grid.BeginEdit(this->m_Grid.GetRow(),5); m_Grid.m_Edit.SetFocus(); } else { if(m_Caption=="销售管理"||m_Caption=="退货返厂管理") { CString sSQL,sID,sName,sType,sSpec,sAddr,sStore; sName=m_Grid.GetItemText(m_Grid.GetRow(),0); sType=m_Grid.GetItemText(m_Grid.GetRow(),1); sSpec=m_Grid.GetItemText(m_Grid.GetRow(),2); sAddr=m_Grid.GetItemText(m_Grid.GetRow(),3); sSQL.Format("SELECT 编号 from 商品信息查询 WHERE 名称='%s' AND 适用车型='%s' AND 规格='%s' AND 产地='%s'",sName,sType,sSpec,sAddr); rst.Open(sSQL,adCmdText); sID=rst.GetFieldValue("编号"); m_EdtStore.GetWindowText(sStore); CString sStoreID=ado.FieldToOtherField("仓库信息查询","名称",sStore,"编号",1); sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号 ='%s' AND 仓库 =%s",sID,sStoreID); rst.Open(sSQL,adCmdText); CString sStoreNumber; if(rst.GetRecordCount()<1) sStoreNumber="0"; else sStoreNumber=rst.GetFieldValue("库存数量"); if(atoi(sNumber)>atoi(sStoreNumber)|| sStoreNumber=="0") { m_Grid.SetItemText(m_Grid.GetRow(),m_Grid.GetCol(),sStoreNumber); } } } } if(m_Grid.GetCol()==6) { sNumber=m_Grid.GetItemText(m_Grid.GetRow(),5); sMoney=m_Grid.GetItemText(m_Grid.GetRow(),6); fTotal=atof(sNumber)*atof(sMoney); sTotal.Format("%f",fTotal); m_Grid.SetItemText(m_Grid.GetRow(),7,sTotal); for(int i=0;i<m_Grid.GetRows();i++) { sNumber=m_Grid.GetItemText(i,5); sMoney=m_Grid.GetItemText(i,6); fNumber=atof(sNumber); fTotal=fNumber*atof(sMoney); fSumNumber=fSumNumber+fNumber; fSumMoney=fSumMoney+fTotal; } sSumNumber.Format("%d",(int)fSumNumber); sSumMoney.Format("%f",fSumMoney); m_StaSumMoney.SetWindowText(sSumMoney); m_StaSumNumber.SetWindowText(sSumNumber); m_StaBigSumMoney.SetWindowText(MoneyToChineseCode(sSumMoney)); this->m_EdtNoPay.SetWindowText(sSumMoney); } } void CDInput::OnInputButexit() { CString MsgText; MsgText.Format("确定要退出%s模块吗?",m_Caption); if(MessageBox(MsgText,"系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1) return; this->OnCancel(); } void CDInput::OnInputButsave() { CString MsgText; if(m_Caption=="进货管理") MsgText="确定要保存此进货单吗?"; if(m_Caption=="退货返厂管理") MsgText="确定要保存此退货返厂单吗?"; if(m_Caption=="销售管理") MsgText="确定要保存此销售单吗?"; if(m_Caption=="销售退货管理") MsgText="确定要保存此销售退货单吗?"; if(m_Caption=="商品调拨管理") MsgText="确定要保存此商品调拨单吗?"; if(MessageBox(MsgText,"系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1) return; CString sSQL,sID,sDate,sProvide,sProvideID,sOPID,sDealWith,sDearID,sPay,sNoPay,sGiveChange,sSumMoney,sSumNumber,sStore,sStoreID; m_StaID.GetWindowText(sID); sID.TrimLeft(); sID.TrimRight(); m_StaDate.GetWindowText(sDate); sDate.TrimRight(); m_EdtDear.GetWindowText(sDealWith); sDearID=ado.FieldToOtherField("员工信息表","姓名",sDealWith,"编号",1); m_EdtProvide.GetWindowText(sProvide); sProvideID=ado.FieldToOtherField("往来单位信息表","名称",sProvide,"编号",1); sOPID=ado.FieldToOtherField("操作员信息表","用户名",OP,"编号",1); m_EdtPay.GetWindowText(sPay); if(m_Caption!="商品调拨管理") if(sPay.IsEmpty()) { MessageBox("还没有结款!!","系统提示",MB_OK|MB_ICONSTOP); m_EdtPay.SetFocus(); return; } m_EdtNoPay.GetWindowText(sNoPay); m_EdtGiveChange.GetWindowText(sGiveChange); m_StaSumMoney.GetWindowText(sSumMoney); m_StaSumNumber.GetWindowText(sSumNumber); m_EdtStore.GetWindowText(sStore); sStoreID=ado.FieldToOtherField("仓库信息表","名称",sStore,"编号",1); if(m_Caption=="进货管理") { //添加到进货信息表中 sSQL.Format("INSERT INTO 进货信息表 VALUES ('%s','%s',#%s#,%s,%s,%s,%s,%s,%s,%s,%s)",sID,sProvideID,sDate,sStoreID,sSumNumber,sSumMoney,sPay,sNoPay,sGiveChange,sOPID,sDearID); rst.Open(sSQL,adCmdText); //添加到进货明细表 CString sWare,sWareID,sSpec,sAddr,sPrice,sNumber; for(int i=0;i<m_Grid.GetItemCount();i++) { //名称、规格、产地三个字段才能指定唯一的商品 sWare=this->m_Grid.GetItemText(i,0); sSpec=this->m_Grid.GetItemText(i,2); sAddr=this->m_Grid.GetItemText(i,3); sPrice=this->m_Grid.GetItemText(i,6); sNumber=this->m_Grid.GetItemText(i,5); if(sWare.IsEmpty()) break; sSQL.Format("SELECT * FROM 商品信息表 WHERE 名称='%s' AND 规格='%s' AND 产地='%s'",sWare,sSpec,sAddr); rst.Open(sSQL,adCmdText); rst.MoveFirst(); sWareID=rst.GetFieldValue("编号"); sSQL.Format("INSERT INTO 进货明细表 VALUES('%s','%s',%s,%s)",sID,sWareID,sPrice,sNumber); rst.Open(sSQL,adCmdText); //更新库存信息表 CString sStoreNumber; sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号='%s' AND 仓库=%s",sWareID,sStoreID); rst.Open(sSQL,adCmdText); if(rst.GetRecordCount()<1)//没有此种商品的库存信息 sSQL.Format("INSERT INTO 库存信息表 VALUES('%s',%s,%s)",sWareID,sStoreID,sNumber); else { sStoreNumber=rst.GetFieldValue("库存数量"); sSQL.Format("UPDATE 库存信息表 SET 库存数量=%d WHERE 商品编号='%s'AND 仓库=%s",atoi(sStoreNumber)+atoi(sNumber),sWareID,sStoreID); } rst.Open(sSQL,adCmdText); } } if(m_Caption=="退货返厂管理") { //添加到退货返厂信息表中 sSQL.Format("INSERT INTO 退货返厂表 VALUES ('%s','%s',#%s#,%s,%s,%s,%s,%s,%s,%s,%s)",sID,sProvideID,sDate,sStoreID,sSumNumber,sSumMoney,sPay,sNoPay,sGiveChange,sOPID,sDearID); rst.Open(sSQL,adCmdText); //添加到退货返厂明细表 CString sWare,sWareID,sSpec,sAddr,sPrice,sNumber; for(int i=0;i<m_Grid.GetItemCount();i++) { //名称、规格、产地三个字段才能指定唯一的商品 sWare=this->m_Grid.GetItemText(i,0); sSpec=this->m_Grid.GetItemText(i,2); sAddr=this->m_Grid.GetItemText(i,3); sPrice=this->m_Grid.GetItemText(i,6); sNumber=this->m_Grid.GetItemText(i,5); if(sWare.IsEmpty()) break; sSQL.Format("SELECT * FROM 商品信息表 WHERE 名称='%s' AND 规格='%s' AND 产地='%s'",sWare,sSpec,sAddr); rst.Open(sSQL,adCmdText); rst.MoveFirst(); sWareID=rst.GetFieldValue("编号"); sSQL.Format("INSERT INTO 退货返厂明细表 VALUES('%s','%s',%s,%s)",sID,sWareID,sPrice,sNumber); rst.Open(sSQL,adCmdText); //更新库存信息表 CString sStoreNumber; sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号='%s' AND 仓库=%s",sWareID,sStoreID); rst.Open(sSQL,adCmdText); if(rst.GetRecordCount()<1)//没有此种商品的库存信息 sSQL.Format("INSERT INTO 库存信息表 VALUES('%s',%s,-%s)",sWareID,sStoreID,sNumber); else { sStoreNumber=rst.GetFieldValue("库存数量"); sSQL.Format("UPDATE 库存信息表 SET 库存数量=%d WHERE 商品编号='%s'AND 仓库=%s",atoi(sStoreNumber)-atoi(sNumber),sWareID,sStoreID); } rst.Open(sSQL,adCmdText); } } if(m_Caption=="销售管理") { //添加到销售信息表中 sSQL.Format("INSERT INTO 销售信息表 VALUES ('%s','%s',#%s#,%s,%s,%s,%s,%s,%s,%s,%s)",sID,sProvideID,sDate,sStoreID,sSumNumber,sSumMoney,sPay,sNoPay,sGiveChange,sOPID,sDearID); rst.Open(sSQL,adCmdText); //添加到销售明细表 CString sWare,sWareID,sSpec,sAddr,sPrice,sNumber; for(int i=0;i<m_Grid.GetItemCount();i++) { //名称、规格、产地三个字段才能指定唯一的商品 sWare=this->m_Grid.GetItemText(i,0); sSpec=this->m_Grid.GetItemText(i,2); sAddr=this->m_Grid.GetItemText(i,3); sPrice=this->m_Grid.GetItemText(i,6); sNumber=this->m_Grid.GetItemText(i,5); if(sWare.IsEmpty()) break; sSQL.Format("SELECT * FROM 商品信息表 WHERE 名称='%s' AND 规格='%s' AND 产地='%s'",sWare,sSpec,sAddr); rst.Open(sSQL,adCmdText); rst.MoveFirst(); sWareID=rst.GetFieldValue("编号"); sSQL.Format("INSERT INTO 销售明细表 VALUES('%s','%s',%s,%s)",sID,sWareID,sPrice,sNumber); rst.Open(sSQL,adCmdText); //更新库存信息表 CString sStoreNumber; sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号='%s' AND 仓库=%s",sWareID,sStoreID); rst.Open(sSQL,adCmdText); if(rst.GetRecordCount()<1)//没有此种商品的库存信息 sSQL.Format("INSERT INTO 库存信息表 VALUES('%s',%s,-%s)",sWareID,sStoreID,sNumber); else { sStoreNumber=rst.GetFieldValue("库存数量"); sSQL.Format("UPDATE 库存信息表 SET 库存数量=%d WHERE 商品编号='%s'AND 仓库=%s",atoi(sStoreNumber)-atoi(sNumber),sWareID,sStoreID); } rst.Open(sSQL,adCmdText); } } if(m_Caption=="销售退货管理") { //添加到销售退货信息表中 sSQL.Format("INSERT INTO 销售退货信息表 VALUES ('%s','%s',#%s#,%s,%s,%s,%s,%s,%s,%s,%s)",sID,sProvideID,sDate,sStoreID,sSumNumber,sSumMoney,sPay,sNoPay,sGiveChange,sOPID,sDearID); rst.Open(sSQL,adCmdText); //添加到销售退货明细表 CString sWare,sWareID,sSpec,sAddr,sPrice,sNumber; for(int i=0;i<m_Grid.GetItemCount();i++) { //名称、规格、产地三个字段才能指定唯一的商品 sWare=this->m_Grid.GetItemText(i,0); sSpec=this->m_Grid.GetItemText(i,2); sAddr=this->m_Grid.GetItemText(i,3); sPrice=this->m_Grid.GetItemText(i,6); sNumber=this->m_Grid.GetItemText(i,5); if(sWare.IsEmpty()) break; sSQL.Format("SELECT * FROM 商品信息表 WHERE 名称='%s' AND 规格='%s' AND 产地='%s'",sWare,sSpec,sAddr); rst.Open(sSQL,adCmdText); rst.MoveFirst(); sWareID=rst.GetFieldValue("编号"); sSQL.Format("INSERT INTO 销售退货明细表 VALUES('%s','%s',%s,%s)",sID,sWareID,sPrice,sNumber); rst.Open(sSQL,adCmdText); //更新库存信息表 CString sStoreNumber; sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号='%s' AND 仓库=%s",sWareID,sStoreID); rst.Open(sSQL,adCmdText); if(rst.GetRecordCount()<1)//没有此种商品的库存信息 sSQL.Format("INSERT INTO 库存信息表 VALUES('%s',%s,%s)",sWareID,sStoreID,sNumber); else { sStoreNumber=rst.GetFieldValue("库存数量"); sSQL.Format("UPDATE 库存信息表 SET 库存数量=%d WHERE 商品编号='%s'AND 仓库=%s",atoi(sStoreNumber)+atoi(sNumber),sWareID,sStoreID); } rst.Open(sSQL,adCmdText); } } if(m_Caption=="商品调拨管理") { CString sYStore,sYStoreID; this->m_EdtProvide.GetWindowText(sYStore); sYStoreID=ado.FieldToOtherField("仓库信息表","名称",sYStore,"编号",1); //添加到调拨信息表中 sSQL.Format("INSERT INTO 调货信息表 VALUES ('%s',%s,%s,#%s#,%s,%s,%s,%s)",sID,sYStoreID,sStoreID,sDate,sSumNumber,sSumMoney,sOPID,sDearID); rst.Open(sSQL,adCmdText); //添加到销售退货明细表 CString sWare,sWareID,sSpec,sAddr,sPrice,sNumber; for(int i=0;i<m_Grid.GetItemCount();i++) { //名称、规格、产地三个字段才能指定唯一的商品 sWare=this->m_Grid.GetItemText(i,0); sSpec=this->m_Grid.GetItemText(i,2); sAddr=this->m_Grid.GetItemText(i,3); sPrice=this->m_Grid.GetItemText(i,6); sNumber=this->m_Grid.GetItemText(i,5); if(sWare.IsEmpty()) break; sSQL.Format("SELECT * FROM 商品信息表 WHERE 名称='%s' AND 规格='%s' AND 产地='%s'",sWare,sSpec,sAddr); rst.Open(sSQL,adCmdText); rst.MoveFirst(); sWareID=rst.GetFieldValue("编号"); sSQL.Format("INSERT INTO 调货明细表 VALUES('%s','%s',%s,%s)",sID,sWareID,sNumber,sPrice); rst.Open(sSQL,adCmdText); //更新库存信息表 CString sStoreNumber; //将出货仓库中此种商品减去调拨数量 sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号='%s' AND 仓库=%s",sWareID,sYStoreID); rst.Open(sSQL,adCmdText); if(rst.GetRecordCount()<1)//没有此种商品的库存信息 sSQL.Format("INSERT INTO 库存信息表 VALUES('%s',%s,-%s)",sWareID,sStoreID,sNumber); else { sStoreNumber=rst.GetFieldValue("库存数量"); sSQL.Format("UPDATE 库存信息表 SET 库存数量=%d WHERE 商品编号='%s'AND 仓库=%s",atoi(sStoreNumber)-atoi(sNumber),sWareID,sYStoreID); } rst.Open(sSQL,adCmdText); //将收货仓库中此种商品加上调拨数量 sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号='%s' AND 仓库=%s",sWareID,sStoreID); rst.Open(sSQL,adCmdText); if(rst.GetRecordCount()<1)//没有此种商品的库存信息 sSQL.Format("INSERT INTO 库存信息表 VALUES('%s',%s,%s)",sWareID,sStoreID,sNumber); else { sStoreNumber=rst.GetFieldValue("库存数量"); sSQL.Format("UPDATE 库存信息表 SET 库存数量=%d WHERE 商品编号='%s'AND 仓库=%s",atoi(sStoreNumber)+atoi(sNumber),sWareID,sStoreID); } rst.Open(sSQL,adCmdText); } } this->Enabled(true); this->m_ButPrint.SetFocus(); } void CDInput::OnChangeInputEdtpay() { CString sPay,sSumMoney,sMoney; int nMoney; m_EdtPay.GetWindowText(sPay); m_StaSumMoney.GetWindowText(sSumMoney); if(atoi(sSumMoney)<atoi(sPay)) { nMoney=atoi(sPay)-atoi(sSumMoney); sMoney.Format("%d",nMoney); this->m_EdtGiveChange.SetWindowText(sMoney); this->m_EdtNoPay.SetWindowText("0"); } else { nMoney=atoi(sSumMoney)-atoi(sPay); sMoney.Format("%d",nMoney); this->m_EdtNoPay.SetWindowText(sMoney); this->m_EdtGiveChange.SetWindowText("0"); } } void CDInput::OnInputButundo() { if(MessageBox("确定要撤消操作吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1) return; this->Enabled(true); this->m_ButBookIn.SetFocus(); } void CDInput::Clear() { this->m_EdtProvide.SetWindowText(""); this->m_Grid.DeleteAllItems(); if(m_Caption!="商品调拨管理") { this->m_EdtGiveChange.SetWindowText("0"); this->m_EdtNoPay.SetWindowText("0"); this->m_EdtPay.SetWindowText("0"); } this->m_StaBigSumMoney.SetWindowText("零元"); this->m_StaSumMoney.SetWindowText("0"); this->m_StaSumNumber.SetWindowText("0"); } void CDInput::OnInputButprint() { CString sID,sName,sDate,sProvide,sStore,sSumMoney,sBigMoney,sSumNumber,sDear; RxRecordset brst; brst.Open("系统设置表"); sName=brst.GetFieldValue("公司名称"); this->m_StaID.GetWindowText(sID); this->m_EdtProvide.GetWindowText(sProvide); this->m_StaSumMoney.GetWindowText(sSumMoney); this->m_StaSumNumber.GetWindowText(sSumNumber); this->m_StaBigSumMoney.GetWindowText(sBigMoney); this->m_EdtStore.GetWindowText(sStore); this->m_StaDate.GetWindowText(sDate); m_ps.DeckCaptionNumber=4; m_ps.MainCaptionFontSize=400; m_ps.DeckCaptionFontSize=180; if(m_Caption=="进货管理") { sName=sName+"进货单"; m_ps.DeckCaptions[0]="进货票号:"+sID; m_ps.DeckCaptions[1]="进货日期:"+sDate; m_ps.DeckCaptions[2]="进货仓库:"+sStore; m_ps.DeckCaptions[3]="供应商:"+sProvide; } if(m_Caption=="退货返厂管理") { sName=sName+"退货返厂单"; m_ps.DeckCaptions[0]="退货票号:"+sID; m_ps.DeckCaptions[1]="退货日期:"+sDate; m_ps.DeckCaptions[2]="退货仓库:"+sStore; m_ps.DeckCaptions[3]="供应商:"+sProvide; } if(m_Caption=="销售管理") { sName=sName+"销售单"; m_ps.DeckCaptions[0]="销售票号:"+sID; m_ps.DeckCaptions[1]="销售日期:"+sDate; m_ps.DeckCaptions[2]="提货仓库:"+sStore; m_ps.DeckCaptions[3]="客户:"+sProvide; } if(m_Caption=="销售退货管理") { sName=sName+"销售退货单"; m_ps.DeckCaptions[0]="退货票号:"+sID; m_ps.DeckCaptions[1]="退货日期:"+sDate; m_ps.DeckCaptions[2]="收货仓库:"+sStore; m_ps.DeckCaptions[3]="客户:"+sProvide; } if(m_Caption=="商品调拨管理") { sName=sName+"商品调拨单"; m_ps.DeckCaptions[0]="调拨票号:"+sID; m_ps.DeckCaptions[1]="调拨日期:"+sDate; m_ps.DeckCaptions[2]="收货仓库:"+sStore; m_ps.DeckCaptions[3]="出货仓库:"+sProvide; } m_ps.MainCaption=sName; m_ps.Grid=&m_Grid; this->m_EdtDear.GetWindowText(sDear); m_ps.TotalNumber=4; m_ps.Totals[0]="合计数量:"+sSumNumber; m_ps.Totals[1]="合计金额(小写):"+sSumMoney; m_ps.Totals[2]="合计金额(大写):"+sBigMoney; m_ps.Totals[3]="经手人:"+sDear; theApp.Print(); } void CDInput::OnKillfocusInputEdtdear() { //检查经手人是否有效 CString sSQL,sDear; this->m_EdtDear.GetWindowText(sDear); sSQL.Format("SELECT * FROM 员工信息表 WHERE 姓名='%s'",sDear); RxRecordset rst; rst.Open(sSQL,adCmdText); if(rst.GetRecordCount()<0) { MessageBox("对不起!您输入的经手人有误!","系统提示",MB_OK|MB_ICONSTOP); this->m_EdtDear.SetFocus(); this->m_EdtDear.SetWindowText(""); } }